package com.pai4j.ugc.service.moment;

import com.pai4j.domain.vo.request.request.MomentSaveOrUpdateVO;
import com.pai4j.ugc.repository.dao.IMomentLinkDAO;
import com.pai4j.ugc.repository.entity.MomentLinkEntity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class MomentLinkService {


    @Autowired
    private IMomentLinkDAO momentLinkDAO;


    /**
     * 保存动态链接信息
     * @param momentId 动态ID
     * @param momentSaveOrUpdate 动态保存或更新的VO对象
     * @return 保存成功返回true
     */
    public boolean saveMomentLink(Long momentId, MomentSaveOrUpdateVO momentSaveOrUpdate) {
        // 如果不包含链接信息，则直接返回true
        if (!momentSaveOrUpdate.includeLink()) {
            return true;
        }
        String link = momentSaveOrUpdate.getLink();
        // 根据动态ID查找链接信息，如果存在则更新，否则创建新的链接实体
        MomentLinkEntity momentLink = momentLinkDAO.findById(momentId).orElse(null);
        if (momentLink != null) {
            momentLink.setResource(link);
        } else {
            momentLink = new MomentLinkEntity();
            momentLink.setMomentId(momentId);
            momentLink.setResource(link);
        }
        momentLinkDAO.save(momentLink);
        return true;
    }

    /**
     * 根据动态ID获取链接信息
     * @param momentId 动态ID
     * @return 链接实体对象
     */
    public MomentLinkEntity getLink(Long momentId) {
        return momentLinkDAO.findAllByMomentId(momentId);
    }

}
